UNPKG

@alphabite/medusa-variant-images

Version:

Alphabite's Medusa Variant Images Plugin

98 lines 8.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PUT = exports.DELETE = exports.POST = void 0; const product_variant_image_1 = require("../../../../../modules/product-variant-image"); const utils_1 = require("@medusajs/framework/utils"); const POST = async (req, res) => { const logger = req.scope.resolve("logger"); const product_variant_id = req.params.id; const variantImagesService = req.scope.resolve(product_variant_image_1.PRODUCT_VARIANT_IMAGE_MODULE); const link = req.scope.resolve("link"); const urls = req.validatedBody.urls; const input = urls.map((img_url, i) => ({ product_variant_id, url: img_url, rank: i, })); try { const variant_images = await variantImagesService.createProductVariantImages(input); const mappedLinks = variant_images.map((image) => ({ product: { product_variant_id }, product_variant_image: { product_variant_image_id: image.id }, })); await link.create(mappedLinks); return res.status(201).json(variant_images); } catch (error) { logger.error("Creating product variant images failed", error); return res.status(500).end(); } }; exports.POST = POST; const DELETE = async (req, res) => { const logger = req.scope.resolve("logger"); const ids = req.validatedQuery.images_id; const link = req.scope.resolve("link"); const query = req.scope.resolve("query"); const id = req.params.id; const variantImagesService = req.scope.resolve(product_variant_image_1.PRODUCT_VARIANT_IMAGE_MODULE); try { await variantImagesService.deleteProductVariantImages(ids); await link.delete({ product_variant_image: { product_variant_image_id: ids }, }); const { data } = (await query.graph({ entity: "product_category_images", filters: { product_category_id: id, }, fields: ["*"], pagination: { order: { rank: "asc", }, }, })); const updated_images_ranks = await (0, utils_1.promiseAll)(data .map(async (image, i) => { if (image.rank !== i) { return (await variantImagesService.updateProductVariantImages({ id: image.id, rank: i, }))[0]; } else return image; }) .filter((img) => img !== undefined)); return res.status(200).json(updated_images_ranks); } catch (error) { logger.error("Deleting product variant image record failed", error); return res.status(500).end(); } }; exports.DELETE = DELETE; const PUT = async (req, res) => { const logger = req.scope.resolve("logger"); const productVariantImagesService = req.scope.resolve(product_variant_image_1.PRODUCT_VARIANT_IMAGE_MODULE); const { images } = req.validatedBody; try { const updated_images = await (0, utils_1.promiseAll)(images .map(async ({ rank, id }) => { const updated_product_variant_image = await productVariantImagesService.updateProductVariantImages({ id, rank, }); return updated_product_variant_image; }) .filter(Boolean)); res.status(200).json(updated_images); } catch (error) { logger.error("Updating Collection images record failed", error); return res.status(500).end(); } }; exports.PUT = PUT; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3Byb2R1Y3QtdmFyaWFudC9baWRdL2ltYWdlcy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFPQSx3RkFBNEY7QUFFNUYscURBQXVEO0FBRWhELE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBbUQsRUFDbkQsR0FBMEMsRUFDMUMsRUFBRTtJQUNGLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7SUFFekMsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDNUMsb0RBQTRCLENBQzdCLENBQUM7SUFFRixNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV2QyxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztJQUNwQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN0QyxrQkFBa0I7UUFDbEIsR0FBRyxFQUFFLE9BQU87UUFDWixJQUFJLEVBQUUsQ0FBQztLQUNSLENBQUMsQ0FBQyxDQUFDO0lBRUosSUFBSSxDQUFDO1FBQ0gsTUFBTSxjQUFjLEdBQ2xCLE1BQU0sb0JBQW9CLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFL0QsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNqRCxPQUFPLEVBQUUsRUFBRSxrQkFBa0IsRUFBRTtZQUMvQixx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